import java.util.Iterator;

/**
 * 迭代器模式的客户端
 *
 * @author Liu Yicong
 * @date 2025/9/23
 */
public class IteratorClient {
	public static void main(String[] args) {
		MyList myList = new MyList(5);
		myList.add("Apple");
		myList.add("Banana");
		myList.add("Cherry");

		// 客户端使用标准的 Iterator 接口进行遍历，无需关心 MyList 的内部实现
		Iterator<String> iterator = myList.iterator();
		System.out.println("--- 使用显式迭代器遍历 ---");
		while (iterator.hasNext()) {
			System.out.println(iterator.next());
		}

		System.out.println("\n--- 使用 for-each 循环遍历 ---");
		// 实现了 Iterable 接口后，就可以使用 for-each 循环
		for (String fruit : myList) {
			System.out.println(fruit);
		}
	}
}
